import re
def mobile(mobile_str):
    '''
    验证手机号格式
    :param mobile_str:被检验的字符串
    :return: mobile_str
    '''
    if re.match(r'^1[3-9]\d{9}$',mobile_str):
        return mobile_str
    else:
        raise ValueError('{} is not a vaild mobile'.format(mobile_str))

def regex(pattern):
    '''
    正则校验
    :param pattern: str正则表达式
    :return: 返回一个函数
    '''
    def vaildate(value_str):
        '''
        具体校验一个字符串，根据自定义的正则表达式
        :param value_str: 需要验证的值
        :return:
        '''
        if re.match(pattern, value_str):
            return value_str
        else:
            raise ValueError('{} is a invalid param'.format(value_str))
    return vaildate
def email(email_str):
    '''
    校验邮箱地址格式
    :param email_str:被校验的字符串
    :return: email_str
    '''
    if re.match(r'^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$', mobile_str):
        return email_str
    else:
        raise ValueError('{} is not a vaild email'.format(email_str))


